Video compression is obtained by creating dependencies in-between frames. In a portion of video, successive frames are typically very similar, and only different in minor respects. These differences represent the delta change from frame to frame. To compress a temporal interval of video, the delta change is encoded for a succession of frames rather than sending full frames. In this way, the static elements (e.g., backgrounds) found in successive frames are not stored over and over for each frame, which saves space and reduces the quantity of data for that interval.
In video compression schemes, an intra-coded frame or I-frame is a conventional, full-sized frame that stores an entire picture. A predictive frame or P-frame represents an encoded frame that only includes the delta change data from the previous frame, which can be an I-frame or another P-frame. A bi-predictive frame or B-frame is inserted in-between I-frames and P-frames and encodes changes from the frames before and after, thus allowing greater compression than obtainable with P-frames. However, problems can result from the inter-frame dependencies in-between the compressed frames. If a frame is dropped due to a network packet loss, the dropped frame impacts the following frames until the next I-frame is received.
Packet loss is especially a challenge for Internet real-time video transmissions sent to multiple endpoints. A previous type of error recovery implementation can be used to resend a recovery frame to a single endpoint in the event of packet loss. However, this solution is not effective with real-time audio-visual multipoint communications to multiple endpoint recipients. For a multiple endpoint system, packet loss reports from each recipient are aggregated and the same recovery frames are sent to each endpoint. Though this can be effective for small systems with four endpoints, for example, for large systems of about one hundred endpoints, sending recovery frames into the pipeline results in greater congestion and packet loss. This lack of error recovery can result in a video drop out of up to ten seconds.